gusucode.com > 现代通信系统——使用MATLAB(+全部程序) > 现代通信系统——使用MATLAB(+全部程序)/现代通信系统——使用MATLAB(+全部程序)/Matlab 程序/Chapter9/Ss_pe96.m
function [p]=ss_Pe96(rho_in_dB) % [p]=ss_Pe96(rho_in_dB) % SS_PE96 finds the measured error rate. The value of % signal per interference ratio in dB is given as an % input to the function. rho=10^(rho_in_dB/10); Eb=rho; % energy per bit if (rho>2), alpha=2/rho; % optimal alpha if rho>2 else alpha=1; % optimal alpha if rho<2 end; sgma=sqrt(1/(2*alpha)); % noise standard deviation N=10000; % number of bits transmitted % generation of the data sequence for i=1:N, temp=rand; if (temp<0.5) data(i)=1; else data(i)=0; end; end; % Find the received signals. for i=1:N, % the transmitted signal if (data(i)==0), r1c(i)=sqrt(Eb); r1s(i)=0; r2c(i)=0; r2s(i)=0; else r1c(i)=0; r1s(i)=0; r2c(i)=sqrt(Eb); r2s(i)=0; end; % The received signal is found by adding noise with probability alpha. if (rand<alpha), r1c(i)=r1c(i)+gngauss(sgma); r1s(i)=r1s(i)+gngauss(sgma); r2c(i)=r2c(i)+gngauss(sgma); r2s(i)=r2s(i)+gngauss(sgma); end; end; % Make the decisions and count the number of errors made. num_of_err=0; for i=1:N, r1=r1c(i)^2+r1s(i)^2; % first decision variable r2=r2c(i)^2+r2s(i)^2; % second decision variable % Decision is made next. if (r1>r2), decis=0; else decis=1; end; % Increment the counter if this is an error. if (decis~=data(i)), num_of_err=num_of_err+1; end; end; % measured bit error rate is then p=num_of_err/N;